package com.ruoyi.cs.mapper;


import com.ruoyi.cs.domain.TBattleUser;
import com.ruoyi.cs.domain.TUserRank;
import com.ruoyi.cs.domain.vo.TUserRobotBattleInfoVo;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.*;

/**
 * 对战用户信息Mapper接口
 * 
 * @author ruoyi
 * @date 2021-08-05
 */
public interface TBattleUserMapper 
{
    /**
     * 查询对战用户信息
     * 
     * @param battleruserId 对战用户信息ID
     * @return 对战用户信息
     */
    public TBattleUser selectTBattleUserById(String battleruserId);

    /**
     * 查询对战用户信息列表
     * 
     * @param tBattleUser 对战用户信息
     * @return 对战用户信息集合
     */
    public List<TBattleUser> selectTBattleUserList(TBattleUser tBattleUser);

    /**
     * 新增对战用户信息
     * 
     * @param tBattleUser 对战用户信息
     * @return 结果
     */
    public int insertTBattleUser(TBattleUser tBattleUser);

    /**
     * 修改对战用户信息
     * 
     * @param tBattleUser 对战用户信息
     * @return 结果
     */
    public int updateTBattleUser(TBattleUser tBattleUser);

    /**
     * 删除对战用户信息
     * 
     * @param battleruserId 对战用户信息ID
     * @return 结果
     */
    public int deleteTBattleUserById(String battleruserId);

    /**
     * 批量删除对战用户信息
     * 
     * @param battleruserIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteTBattleUserByIds(String[] battleruserIds);

    public TBattleUser getBattleUserByBattleId(@Param("battleId") String battleId, @Param("userId") String userId);

    public List<TBattleUser> getBattleUserListByBattleId(@Param("battleId") String battleId);

    public List<TBattleUser> selectBattleUserByBattleId(@Param("battleIds") List<String> battleIds);

    public List<TUserRobotBattleInfoVo> robatBattleInfoList();

    /**
     * 普通用户对战消费排名
     * @param type
     * @return
     */
    public List<TUserRank> battleRanking(String type);


    public List<TBattleUser> battleUserListGroupType(@Param("battleIds") List<String> battleIds,@Param("userType") String userType);

    /**
     * @Desc: 粉丝对战补偿
     * @author: zz
     * @date: 2023/12/10
     */
    public int increaseUserCompensation(Map<String, BigDecimal> map);

    /**
     * @Desc: 更新对战用户的状态以及开出饰品金额
     * @author: zz
     * @date: 2024/2/25
     */
    public int updateBattleUserStatus(@Param("battlerUserId") String battlerUserId,
                                      @Param("dzStatus")String dzStatus,
                                      @Param("battleFee")BigDecimal battleFee,
                                      @Param("finalGoodsPrice") BigDecimal finalGoodsPrice,
                                      @Param("userSeed") String userSeed,
                                      @Param("serverSeed") String serverSeed,
                                      @Param("commonHash") String commonHash,
                                      @Param("rollValue") Long rollValue,
                                      @Param("nonce") Integer nonce);

    /**
     * @Desc: 获取对战是否存在对应的坑位
     * @author: zz
     * @date: 2024/3/11
     */
    public long getBattlePitLocation(@Param("battleId") String battleId,@Param("pitlocation") String pitlocation);
}
